package com.atguigu.gmall.search.vo;

import com.atguigu.gmall.search.Goods;
import com.atguigu.gmall.search.SearchAttr;
import lombok.Data;

import java.util.List;

/**
 * @Author:lyd
 * @Date:2023/8/27 10:19
 * @Version:1.0
 * @Description 封装前端页面需要VO
 **/
@Data
public class SearchResultVo {

    //总共有5大部分

    //====1、所有参数：回显；
    private SearchParamVo searchParam; //检索参数； 当时检索用了哪些条件页面要求服务器原封不动返回

    //===2、面包屑：回显====================
    //品牌面包屑，代表当时检索传入的品牌参数是什么  显示：品牌：小米(mi)
    private String trademarkParam;
    //平台属性面包屑：回显之前用了哪些属性进行筛选
    // 屏幕尺寸：超大屏（超过6.6英寸）运行内存：16GBCPU品牌：骁龙（Snapdragon)
    private List<SearchAttr> propsParamList;

    //===3、二次检索区：  所有条件： 筛选 ===========
    //品牌列表; 符合当前检索条件的所有商品涉及到的所有品牌。 进行二次检索
    private List<Trademark> trademarkList;
    //属性列表： 符合当前检索条件的所有商品涉及到的所有属性。 进行二次检索
    private List<Attr> attrsList;

    //===4、商品数据区：检索到的所有商品
    private List<Goods> goodsList;

    //===5、排序、分页信息区
    //页面显示排序效果
    private OrderMap orderMap;
    //分页条数据
    private Integer pageNo;//当前页码
    private Long totalPages;//总页码
    private String urlParam;



    @Data
    public static class OrderMap {
        private String type; //1,2,3: 代表不同的排序方式
        private String sort;//排序规则：升序还是降序

    }

    @Data
    public static class Attr {
        private Long attrId; //属性id，用来做属性的唯一识别
        private String attrName; //机身内存
        private List<String> attrValueList; // 512G 256G 1TB
    }

    @Data
    public static class Trademark {
        private Long tmId;
        private String tmName;
        private String tmLogoUrl;
    }

}
